package auto.app.controller.from.BeforeAssertion;

import auto.app.validator.FlagValidator;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

@Data
@ApiModel(value = "新增断言")
public class BeforeAssertionFrom {

    /**
     * 测试用例id
     */
    @ApiModelProperty("测试用例id")
    @NotNull(message = "测试用例id不能为空")
    private Integer caseId;

    /**
     * 断言名称
     */
    @ApiModelProperty("断言名称")
    @NotNull(message = "断言名称不能为空")
    private String assertionName;

    /**
     * 断言对象
     */
    @ApiModelProperty("断言对象")
    @FlagValidator(value = {"Response JSON"}, message = "断言对象不符合标准")
    private String assertionObject;

    /**
     * 提取键
     */
    @ApiModelProperty("提取键")
    @NotNull(message = "提取键不能为空")
    private String extractExpression;

    /**
     * 是否继续提取 0不继续 1继续
     */
    @ApiModelProperty("是否继续提取 0不继续 1继续")
    @FlagValidator(value = {"0","1"}, message = "是否继续提取状态不对")
    private Integer continueExtraction;

    /**
     * 继续提取第几参数
     */
    @ApiModelProperty("继续提取第几参数")
    private Integer automaticIndex;

    /**
     * 断言方法
     */
    @ApiModelProperty("断言方法")
    @Pattern(regexp = ">|>=|=|!=|existence|!existence|<|<=|contain|nocontain|isempty|isnotempty", message = "请求方法格式不正确")
    private String assertMethods;

    /**
     * 断言值
     */
    @ApiModelProperty("断言值")
    @NotNull(message = "断言值不能为空")
    private String assertValue;

    /**
     * 是否启用 0启用 1不启用
     */
    @ApiModelProperty("是否启用 0启用 1不启用")
    @FlagValidator(value = {"0","1"}, message = "是否启用状态不对")
    private Integer assertEnable;



    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String assertRemark;
}
